package cn.iocoder.yudao.module.system.dal.mysql.oauth2;

import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.Oauth2RefreshTokenDO;
import org.apache.ibatis.annotations.Mapper;

/**
 * oauth2刷新令牌映射器
 *
 * @author huangweidong
 * @date 2023/05/09
 */
@Mapper
public interface Oauth2RefreshTokenMapper extends BaseMapperX<Oauth2RefreshTokenDO> {

    /**
     * 删除通过刷新令牌
     *
     * @param refreshToken 刷新令牌
     * @return int
     */
    default int deleteByRefreshToken(String refreshToken) {
        return delete(new LambdaQueryWrapperX<Oauth2RefreshTokenDO>()
                .eq(Oauth2RefreshTokenDO::getRefreshToken, refreshToken));
    }

    /**
     * 查询通过刷新令牌
     *
     * @param refreshToken 刷新令牌
     * @return {@code Oauth2RefreshTokenDO}
     */
    default Oauth2RefreshTokenDO selectByRefreshToken(String refreshToken) {
        return selectOne(Oauth2RefreshTokenDO::getRefreshToken, refreshToken);
    }

}
